Systems and methods for multi-context media control and playback

ABSTRACT

A method of remotely controlling an electronic device is disclosed. In some implementations, the method is performed on a server system. The server system receives, from a first electronic device, a first media control request, wherein the first electronic device provides a single user interface that allows a user to both select media content for presentation by the first electronic device and to generate media control requests for transmission to the server system; and the first electronic device also sends a second media control request to a second electronic device over a local area network to which both the first electronic device and the second electronic device are connected. The server system then sends the received first media control request to the second electronic device, distinct from the first electronic device, wherein the server system and the second electronic device are not on the same local area network.

TECHNICAL FIELD

The disclosed implementations relate generally to controlling mediacontent presentation devices.

BACKGROUND

Modern users have a variety of options for devices and ways to consumemedia content. For example, multiple different types of media, includingtext, still images, video, audio, and other digital media, can beconsumed on personal computers, laptops, mp3 players, mobile phones,tablet computers, televisions, stereos, and many other electronicdevices. These electronic devices typically have the ability to storedigital media files in memory that is integrated into the devices. Butacquiring and storing all the media content to which a user desiresaccess can be prohibitively difficult and expensive.

Current technology also allows users to stream digital media content totheir electronic devices over local networks or the Internet, forexample, including over wireless connections. Streaming services allowusers to have access to a much larger collection of media than wouldotherwise be possible. Streaming services store media content on serversremote from the electronic devices, and then send the media content tothe electronic devices when it is requested. The media content is thencached on the electronic device for presentation. In some cases, thecontent may be temporarily buffered/stored before presentation, buttypically the data is deleted from memory after presentation, allowingan almost unlimited amount of media to be streamed to a device withoutrunning out of storage space on the device. Some streaming services alsoallow streamed content to be stored on the local device.

As more and more devices are capable of streaming media content fromremote servers, as well as storing media content locally, it is oftencumbersome to manage all of the different sources of media to which auser has access. Moreover, even where a user has multiple devices thatcan access the same content (for example, a handheld device and a laptopcomputer that can both access a media streaming service), each devicemust typically be controlled with its own dedicated interface.Accordingly, it would be advantageous to provide systems and methodsthat allow a user to remotely control various electronic devices in asimple and intuitive manner.

SUMMARY

Methods and systems for controlling an electronic device through a userinterface are described, where the user interface is capable ofcontrolling media presentation at the device on which the user interfaceis provided, as well as other devices. For example, a first electronicdevice (e.g., a smartphone) provides a single user interface that allowsa user both to select media content for presentation by the firstelectronic device, and to generate media control requests that controlmedia presentation at a second electronic device (e.g., a home audioreceiver). In order to control the second device, the first electronicdevice sends media control requests to the device directly (e.g., withina local area network), as well as to a remote server. The remote servermay be provided by, or associated with, a media content provider thatstreams or otherwise provides media content (e.g., music) to devices viathe Internet. The remote server, in turn, can either forward the mediacontrol request to the second device, or otherwise cause the seconddevice to implement the media control function requested by the user.

Also described are methods and systems for enabling a media presentationcontext to be available to multiple devices. For example, contextinformation, such as the play history, current location within a mediafile, etc., are made available at a second electronic device when amedia stream is sent to the second electronic device instead of (or inaddition to) the first electronic device. This way, if a user initiatespresentation of media content at a second electronic device, and thenwishes to control the media stream via the that device, the same context(e.g., play history, current location, etc.) is available via the seconddevice. Context information associated with a device (and/or a user of adevice) may be stored, for example, on a server associated with a mediacontent provider, and provided to various devices when certainconditions are satisfied.

Also described are methods and systems for automatically transferring amedia content data stream from one device to another. For example, if auser is listening to music on a smart phone while she is walking to herhouse, it is possible to detect when she arrives home, andautomatically, and without user input, cause her home stereo to beginplaying the same music (e.g., the same radio station, playlist, podcast,track, video, etc.) via her home stereo. Thus, the user can be providedwith a seamless, uninterrupted media experience between several devicesand locations.

Also described are methods and systems for controlling an electronicdevice, for example, that has only a limited set of controls. The mediapresentation context associated with a user and/or the user's devices isalso used to provide extended control options with the limited set ofcontrols. For example, a user can press a “play” button at a firstdevice in order to synchronize the first device to music that is beingpresented by another device. As another example, a user can press a“play” button on a first device while that device is playing back asong, and the device will begin playing other songs that are related tothe song (e.g., from a playlist of similar songs or artists, etc.).

Further details and specific implementations of these methods andassociated systems and/or devices are discussed herein.

EXEMPLARY IMPLEMENTATIONS

In accordance with some implementations, a method of remotelycontrolling an electronic device is disclosed. In some implementations,the method is performed on a server system having one or more processorsand memory storing one or more programs for execution by the one or moreprocessors. The server system receives, from a first electronic device,a first media control request, wherein the first electronic deviceprovides a single user interface that allows a user to both select mediacontent for presentation by the first electronic device and to generatemedia control requests for transmission to the server system; and thefirst electronic device also sends a second media control request to asecond electronic device over a local area network to which both thefirst electronic device and the second electronic device are connected.The server system then sends the received first media control request tothe second electronic device, distinct from the first electronic device,wherein the server system and the second electronic device are not onthe same local area network as each other.

In accordance with some implementations, a system for remotelycontrolling an electronic device is disclosed. The system has one ormore processors and memory storing one or more programs to be executedby the one or more processors. The one or more programs includeinstructions which cause the system to receive, from a first electronicdevice, a first media control request, wherein the first electronicdevice provides a single user interface that allows a user to bothselect media content for presentation by the first electronic device andto generate media control requests for transmission to the serversystem; and the first electronic device also sends a second mediacontrol request to a second electronic device over a local area networkto which both the first electronic device and the second electronicdevice are connected. The server system then sends the received firstmedia control request to the second electronic device, distinct from thefirst electronic device, wherein the server system and the secondelectronic device are not on the same local area network as each other.

In accordance with some implementations, a non-transitory computerreadable storage medium storing one or more programs configured forexecution by a server system is disclosed. The one or more programsinclude instructions which cause the system to receive, from a firstelectronic device, a first media control request, wherein the firstelectronic device provides a single user interface that allows a user toboth select media content for presentation by the first electronicdevice and to generate media control requests for transmission to theserver system; and the first electronic device also sends a second mediacontrol request to a second electronic device over a local area networkto which both the first electronic device and the second electronicdevice are connected. The server system then sends the received firstmedia control request to the second electronic device, distinct from thefirst electronic device, wherein the server system and the secondelectronic device are not on the same local area network as each other.

In accordance with some implementations, a method of making a mediaplayer context available at a second electronic device in response tobeginning to stream media content to the second electronic device isdisclosed. In some implementations, the method is performed on a serversystem having one or more processors and memory storing one or moreprograms for execution by the one or more processors. The server systemtransmits a media content stream to a first electronic device forpresentation by the first electronic device. The server system storescontext information associated with the transmission of the mediacontent stream to the first electronic device. The server system thenreceives a user request to cease transmitting the media content streamto the first electronic device and begin transmitting the media contentstream to a second electronic device. In some implementations, inresponse to receiving the user request, the server system ceases totransmit the media content stream to the first electronic device, suchthat the context information associated with the transmitted mediacontent stream is no longer available at the first electronic device.For example, in some cases, once a media stream is transmitted to thesecond electronic device instead of the first, the media context (e.g.,play history, current location) is also removed from, or otherwise nolonger available to the first device. In some implementations, theserver system also transmits the media content stream to the secondelectronic device for presentation by the second electronic device,wherein the context information associated with the transmitted mediacontent stream is available to the second electronic device.

In accordance with some implementations, a system for making a mediaplayer context available at a second electronic device in response tobeginning to stream media content to the second electronic device isdisclosed. The system has one or more processors and memory storing oneor more programs to be executed by the one or more processors. The oneor more programs include instructions that cause the system to transmita media content stream to a first electronic device for presentation bythe first electronic device. The server system stores contextinformation associated with the transmission of the media content streamto the first electronic device. The server system then receives a userrequest to cease transmitting the media content stream to the firstelectronic device and begin transmitting the media content stream to asecond electronic device. In some implementations, in response toreceiving the user request, the server system ceases to transmit themedia content stream to the first electronic device, such that thecontext information associated with the transmitted media content streamis no longer available at the first electronic device, as describedabove. The server system also transmits the media content stream to thesecond electronic device for presentation by the second electronicdevice, wherein the context information associated with the transmittedmedia content stream is available at the second electronic device.

In accordance with some implementations, a non-transitory computerreadable storage medium storing one or more programs configured forexecution by a server system is disclosed. The one or more programsinclude instructions that cause the system to transmit a media contentstream to a first electronic device for presentation by the firstelectronic device. The server system stores context informationassociated with the transmission of the media content stream to thefirst electronic device. The server system then receives a user requestto cease transmitting the media content stream to the first electronicdevice and begin transmitting the media content stream to a secondelectronic device. In some implementations, in response to receiving theuser request, the server system ceases to transmit the media contentstream to the first electronic device, such that the context informationassociated with the transmitted media content stream is no longeravailable at the first electronic device, as described above. The serversystem also transmits the media content stream to the second electronicdevice for presentation by the second electronic device, wherein thecontext information associated with the transmitted media content streamis available to the second electronic device.

In accordance with some implementations, a method of automaticallychanging the device to which a media content data stream is sent isdisclosed. In some implementations, the method is performed on a serversystem having one or more processors and memory storing one or moreprograms for execution by the one or more processors. The server systemtransmits a media content stream to a first electronic device forpresentation by the first electronic device. The server system receivesa transfer request to cease transmitting the media content stream to thefirst electronic device and begin transmitting the media content streamto a second electronic device, wherein the transfer request is generatedautomatically and without user input in accordance with a determinationthat a predetermined condition is met. In response to receiving thetransfer request, the server system ceases to transmit the media contentstream to the first electronic device. The server system then transmitsthe media content stream to the second electronic device forpresentation by the second electronic device.

In accordance with some implementations, a system for automaticallytransferring a media content data stream is disclosed. The system hasone or more processors and memory storing one or more programs to beexecuted by the one or more processors. The one or more programs includeinstructions which cause the system to transmit a media content streamto a first electronic device for presentation by the first electronicdevice. The server system receives a transfer request to ceasetransmitting the media content stream to the first electronic device andbegin transmitting the media content stream to a second electronicdevice, wherein the transfer request is generated automatically andwithout user input in accordance with a determination that apredetermined condition is met. In response to receiving the transferrequest, the server system ceases to transmit the media content streamto the first electronic device. The server system then transmits themedia content stream to the second electronic device for presentation bythe second electronic device.

In accordance with some implementations, a non-transitory computerreadable storage medium storing one or more programs configured forexecution by a server system is disclosed. The one or more programsinclude instructions which cause the system to transmit a media contentstream to a first electronic device for presentation by the firstelectronic device. The server system receives a transfer request tocease transmitting the media content stream to the first electronicdevice and begin transmitting the media content stream to a secondelectronic device, wherein the transfer request is generatedautomatically and without user input in accordance with a determinationthat a predetermined condition is met. In response to receiving thetransfer request, the server system ceases to transmit the media contentstream to the first electronic device. The server system then transmitsthe media content stream to the second electronic device forpresentation by the second electronic device.

In accordance with some implementations, a portable electronic device ora computer system is provided, comprising: one or more processors; andmemory storing one or more programs for execution by the one or moreprocessors, the one or more programs including instructions forperforming any of the methods described herein.

In accordance with some implementations, a computer readable storagemedium storing one or more programs is provided, the one or moreprograms comprising instructions, which, when executed by a portableelectronic device or a computer system with one or more processors,cause the device to perform any of the methods described herein.

In accordance with some implementations, a portable electronic device ora computer system is provided, comprising: means for performing any ofthe methods described herein.

In accordance with some implementations, an information processingapparatus for use in a portable electronic device or a computer systemis provided, comprising: means for performing any of the methodsdescribed herein.

In accordance with some implementations, a portable electronic device ora computer system is provided, comprising: a processing unit configuredto perform any of the methods described herein.

BRIEF DESCRIPTION OF THE DRAWINGS

The implementations disclosed herein are illustrated by way of example,and not by way of limitation, in the figures of the accompanyingdrawings. Like reference numerals refer to corresponding partsthroughout the drawings.

FIG. 1A is a block diagram illustrating a client-server environment,according to some implementations.

FIG. 1B is a block diagram illustrating a client-server environment,according to some implementations.

FIG. 2 is a block diagram illustrating a client-server environment, inaccordance with some implementations.

FIG. 3 is a block diagram illustrating a server system, in accordancewith some implementations.

FIG. 4 is a block diagram illustrating an electronic device, inaccordance with some implementations.

FIG. 5 is a flow diagram illustrating a process of remotely controllingan electronic device, in accordance with some implementations.

FIG. 6 is a flow diagram illustrating a process of making a media playercontext available at a second electronic device in response to beginningto stream media content to the second electronic device, in accordancewith some implementations.

FIG. 7 is a flow diagram illustrating a process of automaticallytransferring a media content data stream, in accordance with someimplementations.

FIG. 8 is a flow diagram illustrating a process of automaticallytransferring a media content data stream, in accordance with someimplementations.

FIG. 9 is a flow diagram illustrating a process of controlling mediapresentation on a remote device through a control included in a webpage,in accordance with some implementations.

FIGS. 10-11 are flow diagrams illustrating a process of controlling anelectronic device, in accordance with some implementations.

DETAILED DESCRIPTION

Some implementations described herein enable a first electronic deviceto both present media content and remotely control media presentation bya second electronic device. In particular, the disclosed implementationsenable a user with a first electronic device to both request mediacontent to be presented by the first electronic device, and also torequest media content to be presented by a second electronic device. Forexample, a user may request, via a media player application, to playbacka media content item (e.g., a music track) on a handheld device such asa smart phone. The user may also, use the same handheld device as aremote control to control the playback (and/or other functionalities) ofa second device, such as a laptop computer, a home media receiver, or ahome audio/visual system. Thus, the first device, which is distinct andremote from the second device, can both present media and control othermedia devices.

One benefit of the disclosed ideas is that the same application is usedfor both presenting media content by the first electronic device and forcontrolling the presentation of media by the second electronic device.Indeed, the same user interface can be used for controlling the localpresentation of media content and for controlling the presentation ofmedia content by the second device. This provides a seamless experiencefor the user, as different control schemes need not be learned fordifferent devices. Moreover, where media content is streamed from aremote server to various user devices, the user may be able to remotelycontrol many different devices, even when the remote control devicecannot communicate to the other devices directly (e.g., via local,peer-to-peer communications).

Accordingly, in some implementations described herein, requests formedia content (and/or other media control requests) are sent from afirst electronic device to a server system located remotely from thefirst electronic device. The server system then causes a secondelectronic device to present media in accordance with the request fromthe first electronic device.

In some implementations, the server system is located remotely from boththe first and the second electronic devices. In some implementations,the first and second electronic devices are located on the same localarea network. A local area network is a network of electronic devicesthat spans a relatively small geographical area. The server system isnot located on the same local area network as either the firstelectronic device or the second electronic device. Those skilled in theart will recognize that local area networks are typically confined to asingle building or a group of buildings in geographical proximity.

Furthermore, communication between the server system and the first andsecond electronic device is over a network such as the Internet, throughstandard TCP/IP communication protocols. In contrast, the first andsecond electronic devices can communicate over a local area network, orover a local wireless communication protocol, such as Bluetooth.

Some implementations described herein enable a user using a firstelectronic device to receive a stream (e.g., from a server) of mediacontent for presentation by the first electronic device, and to requestthat the server transfer and/or simultaneously stream the media contentstream to a second electronic device. After the stream is sent to thesecond electronic device (e.g., in response to a user selectionrequesting that the media be presented via a different device), thecontext of the content stream, originally available on the first device,is made available on the second electronic device. The context of acontent stream includes various information about the content stream,including the playback position of any currently playing media content,a play history of previously presented media content, a “pause” positionof previously presented media content, the media content to be playednext, etc. For example, the content stream, once transferred to thesecond electronic device, will retain the position in the media contentand the playlist associated with the media content. In someimplementations, once the media content stream is transferred to thesecond electronic device, the context is no longer available at thefirst electronic device. For example, once a media content stream beginsplaying at the second electronic device, the media content stream, alongwith the context of the media content stream, is no longer synchronizedwith or sent to the first electronic device.

In other implementations described herein, the server system changes thedestination of the content stream from the first electronic device tothe second electronic device automatically, without any user inputinvolved in generating the transfer request. The switching occurs inresponse to receiving notification from the first electronic device thata specific predetermined condition has been met. For example, the firstelectronic device may monitor its geographic location, and when itdetermines that it has moved into (or out of) a predefined area, thefirst electronic device will send a notification to the server systemthat this condition has been met. In another example, the condition ismet when the server detects a change in the state of the firstelectronic device, such as when the first electronic device establishescommunication with a particular wireless network. In response, theserver system ceases transmitting the media content stream to the firstelectronic device and begins transmitting the media content stream to asecond electronic device. Any appropriate electronic device maydetermine whether the condition is met, including client devices, serversystems, and/or any combination of these or other devices.

In some implementations, the user is able to establish the conditionsfor automatically sending a stream transfer request to the serversystem. For example, the first electronic device, such as a smart phone,may detect that it has arrived at the user's home, and automaticallycause the music that it was just delivering to the user via headphonesto be presented via the user's home stereo system instead.

Some implementations described herein enable remote control of mediacontent presentation by an electronic device from a set of mediacontrols embedded in a webpage. The controls embedded in the webpageallow a user to request playback of media content associated with theembedded controls by a device distinct from the device displaying theweb page.

Some implementations described herein provide for location-aware remotecontrol methods and systems. These can be used, for example, to allow asingle remote control device to control multiple different mediapresentation devices (such as televisions, home stereo systems, wirelessspeakers, and the like) without requiring the user to manually selectwhich device to control. Accordingly, in some implementations, anelectronic device (e.g., a smart phone, dedicated remote control unit,laptop computer, tablet computer, etc.) is capable of acting as a remotecontrol to a plurality of media presentation devices. The location ofthe remote control, or the proximity of the remote control to one ormore of the media presentation devices, may be used to identify whichparticular media presentation device should be controlled by the remotecontrol. In some implementations, the remote control will beautomatically configured to control only the closest media presentationdevice(s). Thus, a user can easily control the media presentationdevice(s) that are nearby, without having to specifically select thosedevices on the remote control.

For example, a smart phone may be configured to act as a remote controldevice for a number of independently controllable speaker units invarious places throughout a house. If a user is in one room, and selectsa media presentation control, the remote control (or another deviceassociated with the remote control, such as the speaker units, a remoteserver, a local device controller, a combination of these or otherdevices, etc.) may select only those speaker units which are in the sameroom to receive and/or respond to the control request. Thus, if a useris listening to music in a bedroom on one set of speakers, and selects a“pause” control on a smart phone, the bedroom speakers will be paused.If the user then moves to the kitchen and selects a “play” control onthe smart phone, playback will be resumed at the kitchen speakers,rather than the bedroom speakers.

In some implementations, the closest speaker unit to the remote controlis selected to act on or receive a control request. In someimplementations, the closest 2, 3, 4, 5, or more speakers to the remotecontrol are selected to act on or receive a control request. In someimplementations, speaker units (or other presentation devices) may begrouped, such that when a user is in certain locations, one or morepredefined groups of speaker units are selected. For example, if a useris on one floor of their house, the remote control may control allappropriate media presentation devices on that floor.

In some implementations, proximity to media presentation devices isdetermined using WiFi signals, BLUETOOTH signals, GPS devices and/orsignals, sonic or ultrasonic signals, infrared signals, RFID,near-field-communication techniques, or any appropriate technique. Insome implementations, instead of controlling the closest speakers, theremote control device controls those media presentation devices that aremost likely to be intended by the user. For example, if a user is near awall in one room, the closest speaker unit may be in a different room.In this case, the control request may be issued to the speakers that theuser did not intend to control. In some implementations, the location ofa remote control device is determined (e.g., an absolute orsemi-absolute location, rather than just a relative proximity to a givendevice), and the location can be correlated with one or more mediapresentation devices that should be controlled. In some implementations,a user can override the automatic selection of the target device.

In some implementations, various remote control devices may be linked toone or more predetermined media presentation devices in a user'senvironment. For example, a desktop computer may be configured toautomatically control one set of media presentation devices (e.g., allthose in the same room as the desktop computer), while a smart phone isconfigured to control to automatically control another set of mediapresentation devices (e.g., all those in the kitchen).

Attention is now directed to the figures, and in particular FIG. 1A,which is a block diagram of a client-server environment, according tosome implementations. The client-server environment 100 includes one ormore client environments (108-1 . . . 108-n) and a server system 120that are connected through a network 110. In some implementations, theclient environment 108-1 includes one or more electronic devices (firstelectronic device 102-1, second electronic device 106-1) within theclient environment 108-1. The server system 120 includes a mediastreaming module 122, a media content database 124, and a contextdatabase 126. The network 110 includes any of a variety of networks,including wide area networks (WAN), wireless networks, wired networks,the Internet, or a combination of such networks.

In accordance with some implementations, the client environment 108-1includes a first electronic device 102-1. The first electronic device102-1 is one of the group of: a personal computer, a mobile electronicdevice, a laptop, a tablet computer, a smart phone, a digital mediaplayer, or any other electronic device able to present media content. Insome implementations, the first electronic device 102-1 includes a mediacontent presentation and control application 104 (hereinafter “mediaapplication”). The media application 104 is able to control thepresentation of media by the electronic device 102-1. For example, themedia application 104 enables a user to navigate media content items,select media content items for playback on the electronic device 102-1,create and edit playlists, select devices on which to present mediacontent, etc. In some implementations, media content is stored by thefirst electronic device 102-1 itself. In other implementations, themedia content is stored by a server system 120, which may be locatedremotely from the first electronic device 102-1 (e.g., outside a localarea network to which the first electronic device 102-1 is connected).The media content is then streamed from the server system 120 to thefirst electronic device 102-1 over the network 110.

In some implementations, the data streamed from the server system 120 istemporarily stored/cached by the first electronic device 102-1 in themedia content buffer 105 in the memory of the first electronic device102-1. In some implementations, media content stored in the mediacontent buffer 105 is removed after the media content is presented bythe first electronic device 102-1, allowing new media content data to bestored in the buffer 105. In other implementations, at least some of themedia content stored in the media content buffer 105 is retained for apredetermined amount of time after the content is presented by the firstelectronic device 102-1 and/or until other predetermined conditions aresatisfied.

In some implementations, the media application 104 is also able tocontrol media content presentation by a second electronic device 106-1,distinct from the first electronic device 102-1. Thus, the user is ableto use the media application 104 to cause the electronic device 102-1 toact both as a device for presenting media content and as a remotecontrol for other devices presenting media content. This allows a userto control media presentation on multiple electronic devices from withina single application 104, and/or using a single user interface.

In some implementations, when a user wants to use the first electronicdevice 102-1 to control media presentation by the second electronicdevice 106-1, the user interacts with the media application 104 to senda media control request to the server system 120. The server system 120receives the media control request over the network 110. For example,the user may press a button on a touchscreen of the first electronicdevice 102-1 in order to send the media control request to the serversystem 120. As described below, the media control request is, forexample, a request to begin presentation of the current media content bythe second electronic device 106-1. Though often used herein to describerequests to initiate or begin presentation of media by the secondelectronic device 106-1, in some implementations, media control requestsalso include requests and/or signals to control other aspects of themedia that is being presented on the second electronic device 106-1,including but not limited to commands to pause, skip, fast-forward,rewind adjust volume, change the order of items in a playlist, add orremove items from a playlist, adjust audio equalizer settings, change orset user settings or preferences, and the like.

In accordance with some implementations, both the first electronicdevice 102-1 and a second electronic device 106-1 are on the same localarea network. As noted above, a local area network is a network ofelectronic devices that typically spans a relatively small geographicalarea. The server system 120 is not located on the same local areanetwork as either the first electronic device 102-1 or the secondelectronic device 106-1.

The client server environment 100 also includes a server system 120. Insome implementations, the server system includes a media streamingmodule 122, a media content database 124, and a context database 126.The media content database 124 stores the data necessary to presentmedia content by an electronic device. In some implementations, themedia content database includes data stored in different formats andfile types to allow a variety of different devices to receive streamedcontent. In some implementations, the data is stored in a single fileformat and is converted/transcribed to the appropriate data type beforeor as it is streamed to a remote device.

In some implementations, the server system 120 includes a mediastreaming module 122. The media streaming module 122 receives mediacontrol request from electronic devices and streams media content inresponse. For example, a user who is streaming music to a smart phonecauses a media control request to be sent to the server using the sameapplication that he was using to consume the media on the smart phone.The server system 120 then sends the media control request to a secondelectronic device, distinct from the first electronic device. In someimplementations, the received media control request includes informationidentifying the electronic device to which the server system 120 shouldforward the media control request.

In some implementations, the server system 120 includes a contextdatabase 126. The context database 126 stores data associated with thepresentation of media content by an electronic device. The contextdatabase 126 includes, among other things, the current position in themedia content stream (e.g., a timestamp), a playlist associated with themedia content stream, previously played content, skipped pieces of mediacontent, and previously indicated user preferences. For example, thecontext database may include that the content stream currently ispresenting a song, at 1 minute and 23 seconds into the song, as well asall the songs played in the last hour and the next 20 songs in theplaylist. The server system 120 transmits the context associated with amedia content stream along with the media content stream.

In some implementations, the server system 120 transmits the mediacontent stream to a first electronic device (e.g., first electronicdevice 102-1) for presentation by the first electronic device. Inresponse to a user request (or an automatically generated request, asdescribed below), the first electronic device 102-1 sends media controlrequests 112 to the server system 120. The server system changes thetarget device for the media content stream based on the media controlrequests received from an electronic device 102-1. In someimplementations, as described below with respect to FIG. 2, the firstelectronic device 102-1 device also sends a second media control requestdirectly to the second electronic device 106-1 over a local area networkto which both the first electronic device 102-1 and the secondelectronic device 106-1 are connected. The second media control requestincludes the same or analogous commands as the media control requests,and are sent to the second electronic device 106-1 directly (e.g., viathe local area network), for example, to increase communicationredundancy, and to provide remote control functions via multiplechannels to increase user friendliness and reliability.

FIG. 1B is a block diagram illustrating a client-server environment 100in accordance with some implementations. The client-server environment100 includes a client environment 108-1, a server system 120, and awebpage server 130 that are connected through a network 110. In someimplementations, the client environment 108-1 includes one or moreelectronic devices (102-1, 106-1) within the client environment 108-1.The network 110 includes any of a variety of networks, including widearea networks (WAN), wireless networks, wired networks, virtual privatenetworks (VPNs), the Internet, or a combination of such networks. FIG.1B illustrates, for example, an environment in which a user may initiatepresentation of media content using controls on a webpage displayed at alaptop or desktop computer, and have the media content presented on adifferent device (e.g., a smart phone).

In some implementations, the client environment includes a firstelectronic device 102 and a second electronic device 106. The firstelectronic device 102 includes a web browser 118 (e.g., a computerapplication configured to access and/or present web-based content,including web pages, on a user interface device associated with acomputer). In some implementations, the web browser 118 displays a webpage 128 received from the webpage server 130. In some implementations,the webpage server 130 is distinct from (e.g., associated with adifferent source or service provider) than the server system 120. Thewebpage includes media controls 132 that allow a user to initiatepresentation of second media content. For example, a webpage of a socialnetworking service may allow users to post about media content. Theseposts may include control elements, such as a “play” button, thatanother user may select in order to playback the media content that wasrecommended or commented on by their social contact.

In some implementations, when the user selects an initiation controlincluded in the webpage (e.g., a “play” button), the first electronicdevice determines whether a media presentation application associatedwith the user is currently presenting media content (e.g., playing backa song, video, etc.). In accordance with a determination that the mediapresentation application is currently presenting media content, thepresentation of the media content is interrupted, and the second mediacontent selected by the user is started. In other implementations, thesecond media is added to the end of the current playlist or placed asthe next media content to be played once the current media content ends.In some implementations, the second media is included in a set of mediacontent that is available to a pseudo-random selection routine (e.g., a“shuffle” mode of a device).

In some implementations, the media controls 132 include device selectiontools that allow a user to choose, from a list of available electronicdevices, a specific device which will present the second media content.In some implementations, in accordance with user selection of a specificdevice, the selected electronic device begins presenting the secondmedia content. For example, when the user is browsing a socialnetworking website, blog, or the like, the user may come across a postthat includes a playback control. When selected, the playback controlmay present a menu including a list of electronic devices to which theuser may stream the media content associated with the post. For example,a dropdown menu may appear offering the user options such as “Play atiPhone,” “Play at Living Room Stereo,” “Play Here,” and/or “Play onTablet PC.” The user may then select the preferred device, and theserver system 120 will cause the media to be presented via that device.In some implementations, the menu only includes those devices that arecurrently available to present media (e.g., those that are currently“online” and/or logged in to the same account associated with the viewerof the webpage). In some implementations, when the selected electronicdevice is already presenting a media content item, presentation of thatmedia content item ceases when the user selects the second mediacontent.

FIG. 2 is a block diagram illustrating a client-server environment 100in accordance with some implementations. The client-server environment100 includes a local area network 202 that connects at least a firstelectronic device 102-1 and a second electronic device 106-1. A serversystem 120 is located remotely from the local area network 202 and isnot integrated into the local area network 202. In some implementations,the server system 120 stores media content and streams the stored mediacontent to remote electronic devices upon request.

In some implementations, the server system 120 streams a media contentstream 114-1 to the first electronic device 102-1. The media contentstream includes the data necessary to present the desired media contentat the first electronic device 102-1, context for the presented mediacontent, and other optional information, such as user accountinformation or advertisements. The user of the first electronic deviceuses an application running on the first electronic device 102-1 to senda first media control request 112 to the server system. First mediacontrol requests 112 include information identifying a second electronicdevice to which the server system should begin sending the media contentstream and information identifying the media content that is to bepresented by the identified second electronic device 106-1.

In some implementations, the first electronic device 102-1 also sends acorresponding second media control request 116 to the second electronicdevice 106-1 at substantially the same time as the first media controlrequest 112. The second media control request 116 includes anotification that the first electronic device 102 has requested that theserver system 120 begin streaming content media to the second electronicdevice 106-1 and information identifying specific media content to bepresented by the second electronic device 106-1. Sending a second mediacontrol request 116 to the second electronic device 106-1 over a localarea network in addition to sending the first media control request overthe internet to the server system 120 allows for two separate, redundantpathways to initiate media presentation by the second electronic device106-1. This allows the second device to react more quickly and morereliably to the media control request of the first electronic device102-1. For example, if the first electronic device 102-1 has limited orno connection to the Internet, or limited or no connection with thesecond device over the local area network, the media control request canstill be delivered to the second electronic device 106-1.

In some implementations, the second electronic device 106-1 includes anapplication for media presentation. In some implementations, both thefirst electronic device 102-1 and the second electronic device 106-1 arerunning copies of the same media presentation application (or mediapresentation applications that are associated with the same streamingservice). In some implementations, both the first electronic device102-1 and the second electronic device 106-1 are connected to the sameuser account (or associated user accounts) on the server system 120.

In some implementations, the second electronic device 106-1buffers/caches a portion of the content that is being streamed to thefirst electronic device 102-1, in case the user should choose to beginmedia presentation by the second device instead of or in addition to thefirst device. Thus, when the second media control request 116 isreceived by the second electronic device 106-1 over the local areanetwork 202, the second electronic device 106-1 begins presenting thedesired media content from the buffer/cache even before the mediacontent stream 114-2 is fully initiated and received from the serversystem 120. In this way, the transfer of the media content stream fromthe first electronic device 102-1 to the second electronic device 106-1occurs more quickly and more reliably than would be possible without thesecond media control request.

In some implementations, the buffering/caching described above is activewhenever the media presentation application is active (e.g., currentlyrunning or being executed, either as a foreground or a backgroundprocess) on the second electronic device 106-1. In some implementations,the second electronic device 106-1 caches/buffers a predeterminedportion of the media content that is being streamed to the firstelectronic device 102-1, such as the next 10 seconds, 20 seconds, 30seconds, 1 minute, etc. In some implementations, the second electronicdevice 106 receives the current media playback location from the firstelectronic device 102-1 and/or the server system 120, such that when thesecond electronic device 106-1 receives a command to begin presentingthe media content, it begins presentation by the same position as thefirst electronic device 102-1.

FIG. 3 is a block diagram illustrating a server system 120, inaccordance with some implementations. The server system 120 typicallyincludes one or more processing units (CPU's) 302, one or more networkinterfaces 304, memory 306, and one or more communication buses 308 forinterconnecting these components.

Memory 306 includes high-speed random access memory, such as DRAM, SRAM,DDR RAM, or other random access solid state memory devices; and mayinclude non-volatile memory, such as one or more magnetic disk storagedevices, optical disk storage devices, flash memory devices, or othernon-volatile solid state storage devices. Memory 306 may optionallyinclude one or more storage devices remotely located from the CPU(s)302. Memory 306, or alternately the non-volatile memory device(s) withinmemory 306, includes a non-transitory computer readable storage medium.In some implementations, memory 306 or the computer readable storagemedium of memory 306 stores the following programs, modules and datastructures, or a subset thereof:

-   -   an operating system 310 that includes procedures for handling        various basic system services and for performing hardware        dependent tasks;    -   a network communication module 312 that is used for connecting        the server system 120 to other computers via the one or more        communication network interfaces 304 (wired or wireless) and one        or more communication networks, such as the Internet, other wide        area networks, local area networks, metropolitan area networks,        VPNs, and so on;    -   one or more server application module(s) 314 for enabling the        server system 120 to perform the functions offered by the server        system 120, including but not limited to:        -   a media streaming module 122 for streaming media content to            an electronic device (e.g., first or second electronic            devices 102-1, 106-1) remote from the server system 120;        -   a request processing module 316 for receiving requests from            electronic devices (e.g., first or second electronic devices            102-1, 106-1), wherein the requests include requests to            stream specific media content to the electronic devices            and/or requests to change the destination of the media            content stream from a first electronic device (e.g., first            electronic device 102-1) to a second electronic device            (e.g., second electronic device 106-1);        -   a context tracking module 318 for tracking and storing the            context of a media content stream, including storing, among            other data, the current playback position in a media content            stream that is currently being presented by an electronic            device (e.g., first or second electronic devices 102-1,            106-1), the position in a current playlist, the play history            of a user, the preferences of a user, previously skipped            media content, and whether media content items were “liked”            or “disliked” (e.g., via “starred,” “thumbs-up,” and/or            “thumbs-down” indications);        -   a context access module 320 for allowing electronic devices            (e.g., first or second electronic devices 102-1, 106-1)            associated with a given user account to access the current            context for media content streams (e.g., media content            streams 114-1, 114-2) associated with the given user            account; and    -   one or more server data module(s) 330 for storing data related        to the server system 120, including but not limited to:        -   media content database 124 including a library of media            content and the data needed to present that media on various            electronic devices (e.g., first or second electronic devices            102-1, 106-1);        -   a context database 126 including information associated with            one or more media content streams, wherein context            information includes the current playback position in a            media content stream, a position in a playlist, play history            of a user, user preferences, skipped media, and user            settings; and        -   a user profile database 332 including account information            for a plurality of users, each account including user media            histories, user preferences, and determined user interests.

FIG. 4 is a block diagram illustrating a first electronic device 102-1and/or a second electronic device 106-1, in accordance with someimplementations. The client system 102 typically includes one or moreprocessing units (CPU's) 402, one or more network interfaces 410, memory412, and one or more communication buses 414 for interconnecting thesecomponents. The client system 102 includes a user interface 404. Theuser interface 404 includes user interface elements that enable output406 to be presented to a user, including speakers or a visual display.The user interface 404 includes user interface components thatfacilitate user input 408 such as a keyboard, a mouse, a touch sensitivedisplay, or other input buttons 408.

Memory 412 includes high-speed random access memory, such as DRAM, SRAM,DDR RAM, or other random access solid state memory devices; and mayinclude non-volatile memory, such as one or more magnetic disk storagedevices, optical disk storage devices, flash memory devices, or othernon-volatile solid state storage devices. Memory 412 may optionallyinclude one or more storage devices remotely located from the CPU(s)402. Memory 412, or alternately the non-volatile memory device(s) withinmemory 412, includes a non-transitory computer readable storage medium.In some implementations, memory 412 or the computer readable storagemedium of memory 412 stores the following programs, modules and datastructures, or a subset thereof:

-   -   an operating system 416 that includes procedures for handling        various basic system services and for performing hardware        dependent tasks;    -   a network communication module 418 that is used for connecting        the first electronic device 102-1 and/or the second electronic        device 106-1 to other computers via the one or more        communication network interfaces 410 (wired or wireless) and one        or more communication networks, such as the Internet, other wide        area networks, local area networks, metropolitan area networks,        VPNs, and so on;    -   a presentation module 420 for enabling presentation of media        content at the first electronic device 102-1 and/or the second        electronic device 106-1 through the output mechanisms 406        associated with the user interface 404;    -   one or more client system application module(s) 422 for enabling        the first electronic device 102-1 and/or the second electronic        device 106-1 to perform one or more functions described herein,        including but not limited to:        -   a media stream reception module 424 for receiving a media            content stream (e.g., FIG. 1A, 114) from a server system            (e.g., FIG. 1A, 120), the media content stream including            data needed to present media content at the first electronic            device 102-1 and/or the second electronic device 106-1 and            context data for the media content stream, wherein the media            content stream can include a variety of media types            including, but not limited to, audio media such as music,            radio, audio books, and podcasts; video media such as            internet videos, television programming, and movies; and any            other type of digitally transmissible media (e.g., games,            images, advertisements, etc.);        -   a media presentation and control application 104 for            presenting media content by the first electronic device            102-1 and/or the second electronic device 106-1, for            controlling media presentation by other electronic devices,            and for interacting with the server system 120;        -   a media request generation module 426 for, in response to            user input requesting presentation of particular media            content, generating a request for transmission to the server            system 120 for the requested media to be streamed to the            first electronic device 102-1 and/or the second electronic            device 106-1;        -   a control request generation module 428 for, in response to            user input requesting control of media presentation by a            second electronic device (e.g., FIG. 1A, 106), generating a            first request for transmission to the server system (e.g.,            FIG. 1A, 120) and a second media control request for            transmission to the second electronic device (e.g., FIG. 1A,            106) via a local area network, VPN, Bluetooth, etc.(e.g.,            FIG. 2, 202);        -   a webpage display module 430 (including, e.g., the web            browser 118, FIG. 1B) for displaying a webpage published by            a third party;        -   a condition evaluation module 432 for determining whether a            predetermined condition is met; in some implementations, the            condition evaluation module 432 periodically determines            whether any predetermined condition has been met; and        -   an automatic request generation module 434 for, in response            to a determination by the condition evaluation module 432            that a predetermined condition is met, generating a request            for transmission to the server system (e.g., the server            system 120) without any direct user input;    -   an electronic device data module 440 for storing data related to        the first electronic device 102-1 and/or the second electronic        device 106-1, including but not limited to:        -   media content buffer 105 including media content data            received from a stream from the server system (e.g., FIG.            1A, 120) and stored in the memory of the first electronic            device 102-1 and/or the second electronic device 106-1;        -   predetermined condition database 442 including, but not            limited to, one or more predetermined conditions,            established by the user of the electronic device 102, that            determine whether a media control request to change the            destination of the media content stream should be            automatically generated;        -   media content database 444 for storing, on the local device,            media content that is part of the user's personal library of            media content; and        -   a user profile database 446 including account information            for a specific user of the first electronic device 102-1            and/or the second electronic device 106-1, including user            media history, user preferences, and determined user            interests.

FIG. 5 is a flow diagram illustrating the process of remotelycontrolling an electronic device in accordance with someimplementations. Each of the operations shown in FIG. 5 may correspondto instructions stored in a computer memory or computer readable storagemedium. In some implementations, the method described in FIG. 5 isperformed by an electronic device (e.g., the first or second electronicdevices 102-1, 106-1; the server system 120). The following discussiondescribes the method(s) as being performed by a server system (e.g., theserver system 120). However, it will be understood that the method(s)described may be performed by any other appropriate device orcombination of devices, including client and/or server devices.

In accordance with some implementations, the server system receives afirst media control request from a first electronic device (e.g., thefirst electronic device 102-1) (500). The first media control requestincludes information designating a second electronic device (e.g., thesecond electronic device 106-1) and specific media content to bepresented by the second electronic device. For example, a controlrequest received at the server system from a mobile phone includesinformation that designates a laptop computer and the song “Jessie'sGirl.” (As noted above, control requests, in some implementations,include commands to pause, skip, fast-forward, rewind adjust volume,change the order of items in a playlist, add or remove items from aplaylist, adjust audio equalizer settings, change or set user settingsor preferences, and the like).

In some implementations, the first electronic device executes a mediaapplication that provides a single user interface to both select mediacontent for presentation by the first electronic device and to generatemedia control requests for transmission to the server system (502).Thus, for example, a user is able to easily select music to be played bya mobile device and, in the same application and with the sameinterface, generate both first and second media control requests for asecond electronic device without having to switch applications orinterfaces.

In some implementations, the media content includes, but is not limitedto, audio tracks, videos, movies, audio playlists, video playlists,and/or a radio stream (504). The audio tracks can be a variety ofaudio-based digital media such as songs, podcasts, radio shows, and/oraudio books.

In some implementations, the first media control request includesinformation specifying a particular electronic device from a group ofavailable electronic devices to be controlled as the second electronicdevice (506).

In accordance with some implementations, the media content is videocontent. In this case, the video content is presented on a displayassociated with the first electronic device (508).

In some implementations, the first electronic device also sends a secondmedia control request to a second electronic device over a local areanetwork or VPN to which both the first electronic device and the secondelectronic device are connected (510). Sending both a first mediacontrol request and a second media control request increases the speedwith which the second electronic device responds to the request, and thereliability of the request being received. In some implementations, thesecond electronic device has already buffered some of the requestedmedia content and can therefore begin presenting that content beforereceiving content from a media content stream from the server system.The second media control request is sent over any communication typethat allows peer-to-peer communication between the two electronicdevices without having to leave the local area network/VPN. In someimplementations, the second media control request is sent via WiFi,BLUETOOTH, or the like.

In some implementations, the server system sends the received firstmedia control request to the second electronic device, distinct from thefirst electronic device, wherein the server system and the secondelectronic device are not on the same local area network/VPN (512). Insome implementations, the server system also begins streaming mediacontent to the second electronic device upon receipt of the first mediacontrol request.

In some implementations, the second electronic device receives a streamof media content from the first electronic device, where the mediacontent is stored on the first electronic device (514). In this way,content that is part of a user's personal library and is stored on thefirst electronic device can be streamed to another device. Thus, forexample, a user can use a smart phone to cause a home stereo system tobegin streaming music from a remote server (e.g., associated with amedia content provider), and may also stream locally stored music fromthe smart phone to the home stereo system via local communication paths,regardless of whether that music is available from the media contentprovider. Accordingly, media that is stored on one device may beaccessible to another device seamlessly and without having to download,transfer, or otherwise duplicate the media content on multiple devices.Also, this process may be seamless to the user, such that the samecontrols and inputs are used both for causing a second device to streammedia from a remote source, and for causing locally stored media to bestreamed to the second device via local communication paths.

For example, if a user has downloaded “Stairway to Heaven” onto hersmartphone, this song may appear in a playlist on the smartphone. Thisplaylist can include media content that is stored locally (e.g.,“Stairway to Heaven”) as well as media content that must be streamedfrom a remote source. However, if the user were to request, via hersmart phone, that the playlist be played back on a home audio systemthat can receive streaming media from the remote source, “Stairway toHeaven” would not be able to be played back, as it was only ever storedon the smart phone. Thus, in accordance with the disclosedimplementation, the locally stored media may be streamed to the seconddevice (e.g., the home stereo) when its turn in the playlist arrives.Accordingly, the user need not worry about where any given media contentitem is stored, because the media may be streamed from either remote orlocal sources.

FIG. 6 is a flow diagram illustrating a process of making a media playercontext available at a second electronic when streaming media content tothe second electronic device, in accordance with some implementations.Each of the operations shown in FIG. 6 may correspond to instructionsstored in a computer memory or computer readable storage medium. In someimplementations, the method described in FIG. 6 is performed by anelectronic device (e.g., the first or second electronic devices 102-1,106-1; the server system 120). The following discussion describes themethod(s) as being performed by a server system (e.g., the server system120). However, it will be understood that the method(s) described may beperformed by any other appropriate device or combination of devices,including client and/or server devices.

In accordance with some implementations, the server system transmits amedia content stream to a first electronic device (e.g., the firstelectronic device 102-1) (600). The media content stream may include,but is not limited to, one or more audio tracks or playlists or a radioor television stream.

The server system stores context information associated with thetransmission of the media content stream to the first electronic device(602). In some implementations, the stored context information is acurrent position in the media content stream (604). For example, thestored context information includes the specific playback location of asong or movie being presented by the first electronic device. Thus, theserver system is able to resume presentation of that media stream at thesame position, should the stream be interrupted, paused, or transferred.In some implementations, the stored context information also includesthe current position in a playlist (606), previously played songs, usersettings such as volume and genre of media to be streamed, userpreferences based on information stored in a profile, and/or any otherinformation pertinent to the media content stream.

In some implementations, the context information associated with thetransmitted media content stream is available at the first electronicdevice. Thus, the user of a first electronic device can view the context(e.g. playlist, history, position in a song/video/etc.) for the mediacontent stream.

In some implementations, the server system receives a user request tocease transmitting the media content stream to the first electronicdevice and begin transmitting the media content stream to a secondelectronic device (e.g., the second electronic device 106-1) (610). Thisrequest is generated in response to user input at the first electronicdevice, and represents, for example, the user wishing to switch to a newdevice while still continuing to have access to the context informationassociated with the media content stream.

In some implementations, in response to the received user request (612),the server system ceases to transmit the media content stream to thefirst electronic device, wherein the context information associated withthe transmitted media content stream is no longer available at the firstelectronic device (614). By making the context of a content media streamno longer available at the first electronic device, the user ensuresthat the server system no longer streams any data to the device. This isparticularly advantageous on a mobile device where battery life,bandwidth, and data transfer may be limited or expensive. In this way,the user prevents the first electronic device from using battery power,bandwidth, and computing resources to continue streaming contextinformation from the server system when it is no longer desired. This isespecially useful for smart phone users who pay for data based on theamount used by the user.

In some implementations, the server system transmits the media contentstream to the second electronic device for presentation by the secondelectronic device, wherein the context information associated with thetransmitted media content stream is available at the second electronicdevice (616). In this way the media stream being presented on the firstdevice is seamlessly transferred to a new device while maintaining thesame state as on the first device. Thus, users may easily switch betweendevices without fear of losing their place in a song, a movie, aplaylist, etc. In some implementations, the context information that waspreviously available at the second electronic device is overwritten(618).

In some implementations, electronic devices in a client environment(e.g., first or second electronic devices 102-n, 106-n, in clientenvironment 108-n) provide controls (e.g., hardware buttons,touch-screens, gesture recognition systems, voice recognition systems,etc.) that allow users to control the presentation of media content atthat device and/or other devices. For example, a standalone wirelessspeaker, home audio/visual system, television, or the like may provide aset of controls such as “play,” “pause,” “skip forward,” “skip back,”“volume up,” “volume down,” etc. In some implementations, selecting acontrol (e.g., at a first electronic device) causes a media controlrequest to be sent from the first electronic device to one or more otherdevices, such as second electronic devices 106-n, first electronicdevices 102-n, remote servers, etc.

In some implementations, the media control request is sent to the serversystem 120, which then sends control requests, media contextinformation, media content (e.g., streaming or otherwise), etc., toother devices. In some implementations, such information is shared withand/or sent to devices that are associated with a common user account orthat are otherwise linked to or associated with one another. Forexample, a client environment 108-1 may include several electronicdevices that are in communication with each other, the server system120, or both. One specific example is a home that includes severalwireless speakers that can each access media content stored at a firstelectronic device 102-1 and/or the server system 120.

When several such electronic devices are associated with one another asdescribed above, a user selection of a control on one device may causevarious actions to occur on that device and/or on the other devices.Moreover, the action that is caused by a selection of a control maydepend on the state of other electronic devices that are associated withthe user and/or are within the client environment 108-1. Accordingly, anintegrated and intuitive system may be provided whereby users cancontrol a media environment via controls at one device. Variousexemplary types of control selections and resultant media controlactions are discussed below. In various implementations, other controlselections may cause the described actions, and other actions (orcombinations of actions) may be performed in response to a given controlselection. For example, actions that occur in response to a selection ofa “play” control may likewise occur in response to a selection ofanother control, or in response to a different type of selection of the“play” control (e.g., a momentary selection versus a maintainedselection.) Moreover, the following examples relate to the presentationand control of music, but they also apply to the presentation and/orcontrol of other types (e.g., movies, television shows, podcasts,audiobooks, etc.).

In some implementations, a user selection of a “play” control at a givenelectronic device will cause one or more of the following action(s)and/or event(s) to occur:

-   -   If no music is currently playing on any of the electronic        devices associated with a user (e.g., the music was previously        stopped, paused, etc.), music will begin playing at the given        electronic device. In some implementations, the electronic        device will communicate with a remote server (e.g., server        system 120) or other associated electronic devices in order to        identify what music is being played by the other electronic        devices (among other possible information), or what music was        previously paused by the user. If music was previously paused,        the music is played back on the first electronic device from the        pause point, regardless of what device was playing the music        last. For example, when a user presses a “play” button on a set        of speakers in the living room, that set of speakers will begin        to play the same song that was previously paused at the speakers        in the user's bedroom. In some implementations, other context of        the paused song (e.g. the playlist that the song is in, play        history, etc.) is maintained. If there is no paused music        associated with the user or the devices, then other music may be        played back (e.g., a default song, other songs in the user's        playlists or play history, a radio station, a sponsored        playlist, etc.).    -   If music is currently playing on one of the other electronic        devices associated with a user, the music will stop playing on        that device and begin playing at the electronic device at which        the “play” control was selected. In some implementations, this        occurs in response to a momentary selection of a “play” button        or other control. In some implementations, a momentary selection        is a tap or a short press of a button or control, such as less        than 1 second, less than 2 seconds, less than 3 seconds, etc.    -   If music is currently playing on one of the other electronic        devices associated with a user, the music will begin playing at        the electronic device at which the “play” control was selected,        in addition to the active playback at the other electronic        devices. In some implementations, the music is synchronized or        substantially synchronized between all of the devices that are        playing back the music. (Even if not exactly synchronized,        playback may be synchronized between devices to such an extent        that any differences in playback positions are imperceptible to        the user, or otherwise do not detract significantly from the        listening experience.) Thus, if a user is listening to music in        a bedroom, and moves to a living room, the user may initiate        synchronized playback of the music currently playing in the        bedroom by pressing and holding a “play” control on the living        room speakers. In some implementations, this occurs in response        to a maintained selection of a “play” button or other control.        In some implementations, a maintained selection is a press of a        button or control that lasts more than 1 second, more than 2        seconds, more than 3 seconds, or any other appropriate time.

In some implementations, a user selection of a “skip” control (e.g.,skip-forward or skip-backward) at a given electronic device will causethe next or previous song in a playlist, album, queue, etc. to be playedback. In some implementations, the “skip” command only affects thedevice where the selection occurred. In some implementations, it affectsall devices that are simultaneously or substantially simultaneouslyplaying back the music. In some implementations, the result of selectinga “skip” control depends on whether the selection was a momentaryselection (e.g., less than 1, 2, or 3 seconds, or any other appropriateduration) or a maintained selection (e.g., more than 1, 2, or 3 seconds,or any other appropriate duration).

In some implementations, a user selection of a “pause” control at agiven electronic device will cause the playback to be paused. In someimplementations, the “pause” command only affects the device where theselection occurred. In some implementations, it affects all devices thatare simultaneously or substantially simultaneously playing back themusic. In some implementations, the result of selecting a “pause”control depends on whether the selection was a momentary selection(e.g., less than 1, 2, or 3 seconds, or any other appropriate duration)or a maintained selection (e.g., more than 1, 2, or 3 seconds, or anyother appropriate duration).

In some implementations, a user selection of a “radio” control (e.g., abutton, touchscreen element, gesture input, etc.) at a given electronicdevice will cause one or more of the following action(s) and/or event(s)to occur:

-   -   If no music is currently playing on any of the electronic        devices associated with a user, a radio station will begin        playing at the given electronic device. In some implementations,        the radio station is a default, a favorite, or a        most-listened-to radio station. The radio station may be        received via a traditional over-the-air broadcast signal, via a        network (e.g., the Internet), or any other appropriate        communication channel. In some implementations, the radio        station corresponds to a playlist or queue of songs that have a        common theme (e.g., a common genre, artist, mood, sound, tempo,        key, etc.), and may be initialized by selecting a “seed” song,        artist, genre, etc. This may be referred to as a “seeded” radio        station.    -   If music is currently playing on the given electronic device, or        another electronic device associated with the user, a “seeded”        radio station is initiated based on that song and played back.        In some implementations, the currently played song is stopped        and the “seeded” radio station is played back in its place. In        some implementations, the currently played song is allowed to        finish before the “seeded” radio station begins playback. Thus,        for example, when a user selects a “radio” control during        playback of the song “Killer Queen,” a seeded radio station        based on that song is initiated, retrieved, and/or identified,        and played back once the seed song ends, or once the seed song        is stopped prior to its end.

In some implementations, the result of selecting a “radio” controldepends on whether the selection was a momentary selection (e.g., lessthan 1, 2, or 3 seconds, or any other appropriate duration) or amaintained selection (e.g., more than 1, 2, or 3 seconds, or any otherappropriate duration).

In any of the implementations described herein, if a playlist or otherqueue of media content is selected for presentation, other media contentmay be presented to the user once the playlist or queue ends. In someimplementations, the media content that is selected for presentationafter a playlist or queue ends is a “seeded” radio station, and is basedon the content of the playlist or queue that just finished. For example,the seeded radio station may be based on the last song in the previousplaylist, the most common genre represented in the previous playlist,the most common artist represented in the previous playlist, the“average genre” of the previous playlist, and the like. In someimplementations the average genre of the previous playlist is configuredso that songs that are “disliked” (e.g., with a dislike button) orskipped do not factor in to the average genre (or they are given lessweight than other songs). In some implementations, songs that are“liked” (e.g., with a “like” button) or that are replayed are given moreweight than other songs.

FIG. 7 is a flow diagram illustrating a process of transferring a mediacontent data stream, in accordance with some implementations. Each ofthe operations shown in FIG. 7 may correspond to instructions stored ina computer memory or computer readable storage medium. In someimplementations, the method described in FIG. 7 is performed by anelectronic device (e.g., the first or second electronic devices 102-1,106-1; the server system 120). The following discussion describes themethod(s) as being performed by a server system (e.g., the server system120). However, it will be understood that the method(s) described may beperformed by any other appropriate device or combination of devices,including client and/or server devices.

In accordance with some implementations, the server system transmits amedia content stream to a first electronic device (e.g., the firstelectronic device 102-1) for presentation by the first electronic device(700). The server system then receives a transfer request to ceasetransmitting the media content stream to the first electronic device andbegin transmitting the media content stream to a second electronicdevice (e.g., the second electronic device 106-1), wherein the transferrequest is generated without user input in accordance with adetermination that a predetermined condition is met (702). In someimplementations, the predetermined condition is determined by the userof the electronic device, prior to determining that it has been met. Insome implementations, determining that the predetermined condition ismet includes detecting through a GPS locator that the device has movedinto or out of a specific location. In some implementations, thelocation of the device is determined using cell-tower triangulation. Insome implementations, the predetermined condition includes detecting asignal from a wireless network, a GPS locator, or from another device.

One example of a predetermined condition is whether two electronicdevices are in close proximity to one another. In some implementations,this condition is determined by determining whether a strength of awireless signal between the first electronic device and the secondelectronic device is above or below a predetermined threshold.

Another example of a predetermined condition is whether two devices arein communication with one another (e.g., indicating that a user hasreturned to or entered a certain area). In some implementations, thiscondition is determined by determining whether a communicationconnection between the first electronic device and the second electronicdevice has been established (e.g., via WiFi, BLUETOOTH, or any otherwired or wireless connection components, protocols, and/or techniques).This may occur, for example, when a user returns home, and acommunication connection is automatically established between a homeaudio system and the user's smartphone.

Another example of a predetermined condition is whether two devices areno longer in communication with one another (e.g., indicating that auser has left a certain area). In some implementations, this conditionis determined by determining whether a communication connection (e.g.,via WiFi, BLUETOOTH, or any other wired or wireless connectioncomponents, protocols, and/or techniques) between the first electronicdevice and the second electronic device has been lost. This may occur,for example, when a user leaves home, and a communication connectionbetween a home audio system and the user's smartphone is terminated.

In some implementations, the predetermined conditions can also includedate and time. For example, a user could establish a predeterminedcondition such that, on weekdays that are not holidays, between thehours of 7 am and 9 am, when the user's smartphone detects the user'scar stereo in close proximity to the first electronic device (e.g.,because the user has entered the car), the smartphone automatically(e.g., without any direct input by the user) sends a request to theserver system to transfer the stream to the car stereo. In someimplementations, the first electronic device detects the car stereo byway of Bluetooth technology or other wireless peer-to-peer communicationprotocols.

In some implementations, the automatically generated request isgenerated by the first electronic device (704).

In other implementations, the automatically generated request isgenerated by the second electronic device (706). Thus, in somesituations, the second electronic device automatically generates thetransfer request to send to the server system. This would be especiallyuseful when the second electronic device has a more reliable connectionto the Internet than the first electronic device.

In yet other implementations, the automatically generated request isgenerated by the server system.

In accordance with some implementations, the server system responds toreceiving the transfer request by ceasing to transmit the media contentstream to the first electronic device (708). The server system thentransmits the media content stream to the second electronic device forpresentation by the second electronic device (710).

FIG. 8 is a flow diagram illustrating a process of transferring a mediacontent data stream, in accordance with some implementations. Each ofthe operations shown in FIG. 8 may correspond to instructions stored ina computer memory or computer readable storage medium. In someimplementations, the method described in FIG. 8 is performed by anelectronic device (e.g., the first or second electronic devices 102-1,106-1; the server system 120). The following discussion describes themethod(s) as being performed by the first electronic device (e.g., thefirst electronic device 102-1). However, it will be understood that themethod(s) described may be performed by any other appropriate device orcombination of devices, including client and/or server devices.

In accordance with some implementations, the first electronic devicereceives a media content stream from a server system (800). The firstelectronic device then presents the received media content (802). Insome implementations, the first electronic device will periodicallydetermine whether a predetermined condition has been met.

When the condition is met, the first electronic device determines thatthe condition has been met (804). In some implementations, determiningthat a first condition is met includes detecting through a GPS locatorthat the device has moved into or out of a predetermined location (806)or detecting whether a particular wireless network is available to thefirst electronic device (808).

In some implementations, the first electronic device, in response todetecting that the predetermined condition is met, generates a transferrequest without user input, the transfer request including a request tocease presenting media content from the received media content datastream and a request to begin presenting the media content data streamat a second electronic device (810).

The electronic device then sends the automatically generated transferrequest to the server system (e.g., the server system 120) (812).

FIG. 9 is a flow diagram illustrating a process of controlling mediapresentation on a remote device through a control included in a webpage,in accordance with some implementations. Each of the operations shown inFIG. 9 may correspond to instructions stored in a computer memory orcomputer readable storage medium. In some implementations, the methoddescribed in FIG. 9 is performed by an electronic device (e.g., thefirst or second electronic devices 102-1, 106-1; the server system 120).The following discussion describes the method(s) as being performed by afirst electronic device (e.g., the first electronic device 102-1).However, it will be understood that the method(s) described may beperformed by any other appropriate device or combination of devices,including client and/or server devices.

In some implementations, a first electronic device, during presentationof first media content at a second electronic device (e.g., the secondelectronic device 106-1), displays a webpage originating at a secondsource separate from the first source, the webpage including a controlfor initiating presentation of second media content (900). For example,the first electronic device is a mobile device and outputs media contentto a home audio/video system for presentation.

The first electronic device displays a webpage originating at a secondsource separate from the first source, the webpage including a controlfor initiating presentation of second media content (902). In someimplementations, the first electronic device also displays deviceselection tools with the webpage; wherein the device selection toolsallow a user to select an electronic device from a list of one or moreavailable electronic devices at which to present the second mediacontent (904).

In accordance with some implementations, the first electronic devicedetects user input through the control included in the webpagerequesting initiation of the second media content (906). For example, awebpage displays a play button associated with a specific song and theuser clicks on it, or otherwise selects it.

In some implementations, detecting the user input causes the secondmedia content to be added to the end of the existing media content queue(908) (e.g., by including the second media at the end of the currentplaylist or next on the playlist).

In some implementations, detecting the user input causes the secondmedia content to be presented after the first media content hascompleted (910). For example, a user clicking on the play button willinterrupt the presentation of the first media content immediately andbegin presenting the second media.

In some implementations, the first electronic device receives a userinput, through the device selection tools, selecting a particularelectronic device for output (912). For example, the controls in thewebpage (e.g., a dropdown/popup menu including images and/or textrepresenting devices) allow the user to select from a list of possibledevices to use to present the second media content.

In accordance with some implementations, in response to detecting userinput, causes the second electronic device to cease presenting the firstmedia content and begin presenting the second media content (914).

In other implementations, in response to detecting user input selectingan electronic device to present media content, the first electronicdevice ceases to present the first media content at the first electronicdevice, and causes the second media content to be presented at theselected electronic device (916).

FIGS. 10-11 are flow diagrams illustrating processes of controlling anelectronic device, in accordance with some implementations. Each of theoperations shown in FIGS. 10-11 may correspond to instructions stored ina computer memory or computer readable storage medium. In someimplementations, the methods described in FIGS. 10-11 are performed byan electronic device (e.g., the first or second electronic devices102-1, 106-1). The following discussion describes the method(s) as beingperformed by a first electronic device (e.g., the first electronicdevice 102-1). However, it will be understood that the method(s)described may be performed by any other appropriate device orcombination of devices, including client and/or server devices.

The first electronic device detects a first selection of a control(1000). In some implementations, the control is a physical button orswitch, while in other implementations, the control is a virtual button(e.g., a selectable element on a touchscreen).

In some implementations, the first selection of the control is amomentary selection of a “PLAY” button (1002).

The first electronic device determines a current media presentationcontext associated with a user of the first electronic device (1006). Insome implementations, the current media presentation context associatedwith the user includes information about the current state of mediacontent presentation associated with the user, at any device associatedwith the user. For example, the media presentation context associatedwith the user of the first electronic device can include an identifierof a media content item (e.g., a song, video, etc.) that is beingpresented by any device associated with the user, as well as positionaldata of that content item (e.g., the playback location), an identifierof a playlist or radio station in which the media content is included,etc. As a specific example, the user may be listening to a song on asecond electronic device (e.g., a computer), and the first electronicdevice (e.g., a WiFi enabled speaker system) determines the song that isbeing played back, and the current playback position in that song. Asanother specific example, the user may have paused a song at a secondelectronic device (e.g., a computer), and the first electronic device(e.g., a WiFi enabled speaker system) determines the song that waspaused, and the pause position within that song. Other mediapresentation context information may be determined as well (e.g., aplaylist, a volume, etc.). In these examples, the particular devicesidentified for the first and second electronic devices are exemplary,and other devices are contemplated by these examples as well.

If the current media presentation context satisfies a first condition,the first electronic device presents media content from a pausedposition (1008). In some implementations, the first condition issatisfied if the media content was paused at a second electronic devicewithin a first time period before detecting the first selection (1010).In some implementations, the predetermined time period is 1, 2, 3, 4, 5,or more minutes (or any other appropriate time period).

If the current media presentation context fails to satisfy the firstcondition, presenting, at the first electronic device, second mediacontent (1012). For example, in some implementations, the current mediapresentation context fails to satisfy the first condition when no mediacontent associated with the user was paused within a predetermined timeperiod before detecting the first selection. In some implementations,the predetermined time period is 1, 2, 3, 4, 5, or more minutes (or anyother appropriate time period).

In some implementations, presenting the second media content (e.g., step1012) includes selecting the second media content (1014); and presentingthe second media content at the first electronic device (1016). Asdescribed above, the second media content may include any of a defaultmedia item (e.g., a song), other media items in the user's playlists orplay history, a radio station, a sponsored playlist, etc., and selectingthe media content (at step 1016) may include selecting media content ofany of these types of media content, or other types not mentioned.

In some implementations, the first electronic device detects a secondselection of the control while third media content is being presented bya second electronic device (1018). In some implementations, the secondselection of the control is a maintained selection of the “PLAY” button(1019).

The first electronic device then presents the third media content insubstantial synchrony with the presentation of the third media contentat the second electronic device (1020). For example, the firstelectronic device (e.g., a WiFi enabled speaker system) detects that, atthe moment when a user selects a “Play” control, a song is currentlybeing played at the second electronic device (e.g., a computer system).The first electronic device then begins to play back that same song insubstantial synchrony with the second electronic device.

With reference to FIG. 11, the first electronic device detects a firstselection of a control during presentation of a first media content item(1100). In some implementations, the control is a physical button orswitch, while in other implementations, the control is a virtual button(e.g., a selectable element on a touchscreen). In some implementations,the control is a “radio” button (1102).

In some implementations, prior to presenting the second media contentitem (at step 1106, below), the device ceases presentation of the firstmedia content item before an end of the first media content item (1103).For example, the device immediately stops playing back a currentlypresented song in order to begin presentation of the next song (e.g., asong in a playlist of songs related to the song that was playing whenthe “Radio” button was selected).

In some implementations, the first electronic device delays presentingthe second media content item (at step 1106, below) until an end of thefirst media content item is reached (1105). For example, the devicewaits until the end of the currently presented song before starting topresent the next song (e.g., a song in a playlist of songs related tothe song that was playing when the “Radio” button was selected).

In response to detecting the first selection, the first electronicdevice presents a second media content item that is related to the firstmedia content item (1106).

In some implementations, presenting the second media content itemincludes presenting a first playlist including media content related tothe first media content item, wherein the second media content item isincluded in the first playlist (1108). For example, if a user selects a“Radio” button on a device while the device is playing the song “KillerQueen,” the device will begin playing a playlist of similar songs(and/or songs by similar artists).

In some implementations, the second media content item is related to thefirst media content item based on a similarity between the first and thesecond media content items in any of the group consisting of: genre,artist, mood, sound, tempo, volume, and key.

The first electronic device detects a second selection of the controlduring presentation of the second media content item, wherein no controlselections are detected between the first selection of the control andthe second selection of the control (1110). In response to detecting thesecond selection, the first electronic device presents (at the firstelectronic device) a third media content item that is related to thesecond media content item (1112). Thus, the user need not navigatethrough multiple menus or provide multiple inputs to the device in orderto cause the device to being presenting another sequence of relatedmedia content (e.g., a playlist or radio station of songs similar to thesong that was playing when the control was selected).

In some implementations, presenting the third media content itemincludes presenting a second playlist including media content related tothe second media content item, wherein the third media content item isincluded in the second playlist (1114).

In some implementations, the method(s) described with respect to FIGS.10-11 are performed by or in conjunction with a device that has a set ofmedia control inputs. In some implementations, the set of media controlinputs consists essentially of a play button; a pause button; a stopbutton; a forward skip button; a backward skip button; and a playlistinitiation button.

The methods illustrated in FIGS. 5-11 may be governed by instructionsthat are stored in a computer readable storage medium and that areexecuted by at least one processor of at least one server. Each of theoperations shown in FIGS. 5-11 may correspond to instructions stored ina non-transitory computer memory or computer readable storage medium. Invarious implementations, the non-transitory computer readable storagemedium includes a magnetic or optical disk storage device, solid statestorage devices, such as Flash memory, or other non-volatile memorydevice or devices. The computer readable instructions stored on thenon-transitory computer readable storage medium may be in source code,assembly language code, object code, or other instruction format that isinterpreted and/or executable by one or more processors.

Plural instances may be provided for components, operations, orstructures described herein as a single instance. Finally, boundariesbetween various components, operations, and data stores are somewhatarbitrary, and particular operations are illustrated in the context ofspecific illustrative configurations. Other allocations of functionalityare envisioned and may fall within the scope of the implementation(s).In general, structures and functionality presented as separatecomponents in the example configurations may be implemented as acombined structure or component. Similarly, structures and functionalitypresented as a single component may be implemented as separatecomponents. These and other variations, modifications, additions, andimprovements fall within the scope of the implementation(s).

It will also be understood that, although the terms “first,” “second,”etc. may be used herein to describe various elements, these elementsshould not be limited by these terms. These terms are only used todistinguish one element from another. For example, a first contact couldbe termed a second contact, and, similarly, a second contact could betermed a first contact, which changing the meaning of the description,so long as all occurrences of the “first contact” are renamedconsistently and all occurrences of the second contact are renamedconsistently. The first contact and the second contact are bothcontacts, but they are not the same contact.

The terminology used herein is for the purpose of describing particularimplementations only and is not intended to be limiting of the claims.As used in the description of the implementations and the appendedclaims, the singular forms “a”, “an” and “the” are intended to includethe plural forms as well, unless the context clearly indicatesotherwise. It will also be understood that the term “and/or” as usedherein refers to and encompasses any and all possible combinations ofone or more of the associated listed items. It will be furtherunderstood that the terms “comprises” and/or “comprising,” when used inthis specification, specify the presence of stated features, integers,steps, operations, elements, and/or components, but do not preclude thepresence or addition of one or more other features, integers, steps,operations, elements, components, and/or groups thereof.

As used herein, the term “if” may be construed to mean “when” or “upon”or “in response to determining” or “in accordance with a determination”or “in response to detecting,” that a stated condition precedent istrue, depending on the context. Similarly, the phrase “if it isdetermined (that a stated condition precedent is true)” or “if (a statedcondition precedent is true)” or “when (a stated condition precedent istrue)” may be construed to mean “upon determining” or “in response todetermining” or “in accordance with a determination” or “upon detecting”or “in response to detecting” that the stated condition precedent istrue, depending on the context.

The foregoing description included example systems, methods, techniques,instruction sequences, and computing machine program products thatembody illustrative implementations. For purposes of explanation,numerous specific details were set forth in order to provide anunderstanding of various implementations of the inventive subjectmatter. It will be evident, however, to those skilled in the art thatimplementations of the inventive subject matter may be practiced withoutthese specific details. In general, well-known instruction instances,protocols, structures and techniques have not been shown in detail.

The foregoing description, for purpose of explanation, has beendescribed with reference to specific implementations. However, theillustrative discussions above are not intended to be exhaustive or tolimit the implementations to the precise forms disclosed. Manymodifications and variations are possible in view of the aboveteachings. The implementations were chosen and described in order tobest explain the principles and their practical applications, to therebyenable others skilled in the art to best utilize the implementations andvarious implementations with various modifications as are suited to theparticular use contemplated.

1-57. (canceled)
 58. A method for controlling an electronic device,comprising: at a first electronic device having one or more processorsand memory storing one or more programs for execution by the one or moreprocessors: detecting a first selection of a control; determining acurrent media presentation context associated with a user of the firstelectronic device; if the current media presentation context satisfies afirst condition, presenting, at the first electronic device, mediacontent from a paused position; and if the current media presentationcontext fails to satisfy the first condition, presenting, at the firstelectronic device, second media content.
 59. The method of claim 58,wherein the media content is recently presented media content, andwherein the media presentation context includes an identifier of therecently presented media content and the pause position of the recentlypresented media content.
 60. The method of claim 58, wherein the firstcondition is satisfied if the media content was paused at a secondelectronic device within a first time period before detecting the firstselection.
 61. The method of claim 58, wherein presenting the secondmedia content includes: selecting the second media content; andpresenting the second media content at the first electronic device. 62.The method of claim 58, further comprising: detecting a second selectionof the control while third media content is being presented by a secondelectronic device; and presenting the third media content in substantialsynchrony with the presentation of the third media content at the secondelectronic device.
 63. The method of claim 62, wherein the firstselection of the control is a momentary selection of a “PLAY” button.64. The method of claim 62, wherein the second selection of the controlis a maintained selection of the “PLAY” button.
 65. A method forcontrolling an electronic device, comprising: at a first electronicdevice having one or more processors and memory storing one or moreprograms for execution by the one or more processors: detecting a firstselection of a control during presentation of a first media contentitem; in response to detecting the first selection, presenting a secondmedia content item that is related to the first media content item;detecting a second selection of the control during presentation of thesecond media content item, wherein no control selections are detectedbetween the first selection of the control and the second selection ofthe control; and in response to detecting the second selection,presenting a third media content item that is related to the secondmedia content item.
 66. The method of claim 65, further comprising: inresponse to detecting the first selection, presenting a first playlistincluding media content related to the first media content item, whereinthe second media content item is included in the first playlist; and inresponse to detecting the second selection, presenting a second playlistincluding media content related to the second media content item,wherein the third media content item is included in the second playlist.67. The method of claim 65, further comprising, prior to presenting thesecond media content item, ceasing presentation of the first mediacontent item before an end of the first media content item.
 68. Themethod of claim 65, further comprising delaying presenting the secondmedia content item until an end of the first media content item isreached.
 69. The method of claim 65, wherein the control is a “RADIO”button.
 70. The method of claim 65, wherein the second media contentitem is related to the first media content item based on a similaritybetween the first and the second media content items in any of the groupconsisting of: genre, artist, mood, sound, tempo, volume, and key. 71.The method of claim 65, wherein the third media content item is relatedto the second media content item based on a similarity between thesecond and the third media content items in any of the group consistingof: genre, artist, mood, sound, tempo, volume, and key.
 72. A firstelectronic device, comprising: one or more processors; and memorystoring one or more programs for execution by the one or moreprocessors, the one or more programs including instructions for:detecting a first selection of a control; determining a current mediapresentation context associated with a user of the first electronicdevice; if the current media presentation context satisfies a firstcondition, presenting, at the first electronic device, media contentfrom a paused position; and if the current media presentation contextfails to satisfy the first condition, presenting, at the firstelectronic device, second media content.
 73. A non-transitorycomputer-readable storage medium storing one or more programs, the oneor more programs comprising instructions, which, when executed by afirst electronic device with one or more processors, cause the firstelectronic device to: detect a first selection of a control; determine acurrent media presentation context associated with a user of the firsteletronic device; if the current media presentation context satisfies afirst condition, present, at the first electronic device, media contentfrom a paused position; and if the current media presentation contextfails to satisfy the first condition, present, at the first electronicdevice, second media content.
 74. A first electronic device, comprising:one or more processors; and memory storing one or more programs forexecution by the one or more processors, the one or more programsincluding instructions for: detecting a first selection of a controlduring presentation of a first media content item; in response todetecting the first selection, presenting a second media content itemthat is related to the first media content item; detecting a secondselection of the control during presentation of the second media contentitem, wherein no control selections are detected between the firstselection of the control and the second selection of the control; and inresponse to detecting the second selection, presenting a third mediacontent item that is related to the second media content item.
 75. Anon-transitory computer-readable storage medium storing one or moreprograms, the one or more programs comprising instructions, which, whenexecuted by a first electronic device with one or more processors, causethe first electronic device to: detect a first selection of a controlduring presentation of a first media content item; in response todetecting the first selection, present a second media content item thatis related to the first media content item; detect a second selection ofthe control during presentation of the second media content item,wherein no control selections are detected between the first selectionof the control and the second selection of the control; and in responseto detecting the second selection, present a third media content itemthat is related to the second media content item.